package com.qdxwx.data.service.card;

import com.qdxwx.common.page.PageRequest;
import com.qdxwx.models.card.CardCode;
import com.qdxwx.models.card.CardCodeQuery;
import com.qdxwx.models.card.CardCodeVO;

import java.util.List;

/**
 *CardCode接口
 * Qdx NetSchool Platform
 * @author qdxwx
 * @updateTime 2022/5/25
 * @description
 */
public interface CardCodeService {

    /**
     * 添加CardCode
     */
    int insert(CardCode cardCode);

    /**
     * 批量添加课程卡信息
     */
    int insertBatch(List<CardCode> cardCodeList);

    /**
     * 根据id删除一个CardCode
     */
    int deleteById(long id);

    /**
     * 修改CardCode
     * @param cardCode 要修改的CardCode
     */
    int update(CardCode cardCode);

    /**
     * 根据卡编码  修改   未使用  为  已使用  状态
     */
    int updateUsed(CardCode cardCode);

    /**
     * 设置课程卡过期
     */
    int overById(long id);
    /**
     * 设置课程卡过期
     */
    int overByCardId(long cardId);
    /**
     * 通过主卡作废详卡表信息
     */
    int closeByCardId(long cardId);

    /**
     * 根据id获取单个CardCode对象
     */
    CardCode getById(long id);

    /**
     * 根据id获取单个CardCode对象
     */
    CardCode getByCode(String code, String pwd);

    List<CardCode> getList(CardCode cardCode, PageRequest page);

    List<CardCodeVO> getVOList(CardCodeQuery cardCodeQuery, PageRequest page);

    long count(CardCode cardCode);

    int create(long cardId, long num);

    int updateCombine(long userId, long userId1);
}